🔨贝叶斯网络(Bayesian Networks)

[[[要先看线性高斯模型那一节]]]
本文主要是PRML一书8.1节的笔记。
贝叶斯网络是概率图模型中重要的一种模型,用有向无环图(DAG)来描述概率分布。

1. Motivation

考虑一个任意的联合概率分布 $p(a,b,c)$,应用条件概率的乘法原则,可以得到$$p(a,b,c)=p(c|a,b)p(b|a)p(a)\tag{1}$$我们没有对这个分布做进一步的限定,所以上式的分解对任何 $p(a,b,c)$ 都是成立的。
用节点表示随机变量,用有向边表示变量间的条件依赖关系,可以得到下面的图

称a为c的父节点,b为a的子节点。注意到(1)式左侧是对称的,但右侧却不对称,因为我们在分解的同时隐式地选择了一个顺序,不同的顺序则对应不同的图。
推广一下,对于 $K$ 个随机变量的联合分布 $p(x_1,\cdots,x_K)$,可以分解为$$p(x_1,\cdots,x_K)=p(x_K|x_1,\cdots,x_{K-1})\cdots p(x_2|x_1)p(x_1)\tag{2}$$同样地,我们可以画出一个含 $K$ 个节点的图。这个图是全连通的,因为任意一对节点间都有一条边,它描述了一个十分一般的分布。
在实际中,有些节点间没有边,正是这些缺少的边提供了关于分布的有趣信息,如下图

它对应的分解形式为$$p(x_1)p(x_2)p(x_3)p(x_4|x_1,x_2,x_3)p(x_5|x_1,x_3)p(x_6|x_4)p(x_7|x_4,x_5)\tag{3}$$
离散变量一般用条件概率表(连续变量用条件概率密度函数)来描述属性的联合概率。比如上图中的 $p(x_6|x_4)$,可用下表来描述(假设所有变量均为0,1变量)

概率 $x_6=0$ $x_6=1$
$x_4=1$ 0.4 0.6
$x_4=0$ 0.7 0.3

一般地来说,一个贝叶斯网络有结构 $G$ 和参数 $\Theta$ 两部分构成:$G$ 是一个有向无环图,直观描述了变量间的依赖关系;参数 $\Theta$ 定量描述了这种依赖关系,它可以是条件概率表或条件概率密度函数。
对于一个含 $K$ 个节点的图,对应的联合概率分布为$$p(\mathbf{x})=\prod_{k=1}^K p(x_k|\mathrm{pa}_k)\tag{4}$$其中 $\mathrm{pa}_k$ 表示 $x_k$ 的所有父节点。

2. 一个例子:多项式回归

这篇文章中,我们介绍了贝叶斯多项式拟合。下面以这个为例,介绍对应的图模型。
这个模型中的随机变量为多项式系数 $\mathbf{w}$ 和观测数据 $\mathbf{t}=(t_1,\cdots,t_N)^{\mathrm{T}}$。此外有输入数据 $\mathbf{x}=(x_1,\cdots,x_N)^{\mathrm{T}}$,控制 $w$ 先验分布的超参数 $\alpha$ 和 $\beta$,不过这些都是参数而不是随机变量。只考虑随机变量,联合概率分布则为$$p(\mathbf{t},\mathbf{w})=p(\mathbf{w})\prod_{n=1}^N p(t_n|\mathbf{w})\tag{5}$$对应的图模型如下

图模型的扩展图形或画法见参考资料1。


简单的概率分布可以用来构建复杂的概率分布,图模型可以很好地说明这一点。下面介绍离散变量和高斯变量两种情况,在这两种情况下,模型可以构造出任意复杂的无向图。

3. 离散变量

一个 $K$ 值变量 $\mathbf{x}$(用one-hot表示)的概率分布 $p(\mathbf{x}|\boldsymbol{\mu})=\prod_{k=1}^K \mu_k^{x_k}$ 为 $$p(\mathbf{x}|\boldsymbol{\mu})=\prod_{k=1}^K\mu_k^{x_k}\tag{6}$$由于有约束 $\sum_k\mu_k=1$,所有只需要 $K-1$ 个 $\mu_k$ 的值就可以定义这个分布。
现在假设有两个 $K$ 值离散变量 $x_1$,$x_2$,用 $\mu_{kl}$ 表示 $x_{1k}=1$ 且 $x_{2l}=1$ 时的概率,其中 $x_{1k}$ 表示 $\mathbf{x}_1$ 的第 $k$ 个分量,$x_{2l}$ 同理。那么联合概率分布则为$$p(\mathbf{x}_1,\mathbf{x}_2|\boldsymbol{\mu})=\prod_{k=1}^K\prod_{l=1}^K\mu_{kl}^{x_{1k}x_{2l}}\tag{7}$$同理,因为有约束 $\sum_k\sum_l\mu_{kl}=1$,所以需要 $K^2-1$ 个参数来确定分布。很容易可以看出,关于 $M$ 个 $K$ 值变量的任意联合分布需要 $K^M-1$ 个参数来确定,这个值随 $M$ 指数增长。
若变量 $\mathbf{x}_1$,$\mathbf{x}_2$ 独立,则参数只有 $2(K-1)$ 个;对于 $M$ 个独立的变量,则参数总数为 $M(K-1)$,随 $M$ 线性增长。

在上图中,(a)图表示一般情形(有 $K^2-1$ 个参数),图为全连通图;(b)图表示两变量独立的情形(有 $K-1$ 个参数),图中没有一条边。

上图体现了模型复杂度与模型表示能力间的权衡,现实中的模型多处于GAP中。比如下图所示的模型,它只有 $K-1+(M-1)K(K-1)$,是 $K$ 的平方级,随 $M$ 线性增长。

减小参数数量的方法

  1. 共享参数
    通过共享参数可以来减少参数数量。以上图为例,我们可以让 $p(\mathbf{x}_i|\mathbf{x}_{i-1})$ 由同一组 $K(K-1)$ 个变量来确定,而不是用 $(M-1)$ 组。所以总的参数就可以减为 $K^2-1$。
  2. 参数化模型
    另一种控制参数数量的方法就是使用参数化的模型来描述条件分布而不是使用完整的条件概率表。以下图为例,每个变量都是0-1变量,每个父变量 $x_i$ 由一个参数 $\mu_i$ 控制其分布($p(x_i=1)=\mu_i$)。对于条件分布 $p(y|x_1,\cdots,x_M)$,需要 $2^M$ 个参数来确定出完整的条件概率表。

    我们可以用父变量线性组合的逻辑回归方程来表示条件分布,如下$$p(y=1|x_1,\cdots,x_M)=\sigma\left(w_0+\sum_{i=1}^Mw_ix_i\right)=\sigma(\mathbf{w}^{\mathrm{T}}\mathbf{x})\tag{8}$$其中 $\sigma(a)=(1+\exp(-a))^{-1}$,$\mathbf{x}=(x_0,x_1,\cdots,x_M)^{\mathrm{T}}$,$x_0$ 固定为0。与之前一般化的模型相比,这个模型受到限制更多,表示能力也相对弱一些,但参数数量大大减少,只剩下 $M+1$ 个参数。

4. 高斯变量

参考资料

  1. Pattern Recognition and Machine Learning (PRML)
  2. 《机器学习》by 周志华